package org.lanqiao.tjut.CHYInnerClass;

import org.junit.Test;
import org.lanqiao.tjut.CHYInnerClass.CHYOutClass.MyCHYInnerClass;

public class TestDriver {
	/*
	 * 在外部类的外部如何调用成员内部类：
	 * 
	 */
	@Test
	public void testCHYInnerClass() {
		//创建外部类的实例变量
		CHYOutClass chO = new CHYOutClass("成员外部类");
		//再使用成员外部类的实例变量 创建成员内部类的实例对象
		/*
		 * 解释：
		 * CHYOutClass.MyCHYInnerClass 表示内部类来自于那个外部类
		 * chO.new  表示当前内部类类的实例变量要与那个外部类的实例变量进行绑定。
		 *          创建的内部类是伴随那个外部类的实例变量存在的。
		 */
		CHYOutClass.MyCHYInnerClass myChInner = chO.new MyCHYInnerClass("内部类名");
		myChInner.sayHello();
		
		//CHYOutClass.MyCHYInnerClass myChInner2 = new MyCHYInnerClass("内部类名");
		
		CHYOutClass chO2 = new CHYOutClass("成员外部类222222222");
		myChInner = chO2.new MyCHYInnerClass("内部类名");
		myChInner.sayHello();
		
		//创建student的实例对象
		Student stu = new Student();
		String stuName = stu.stuName;
	}
}
